#object 根类
class Person:
    def __init__(self,name):
        self.name=name
    def __str__(self):
        return"名字是：{0}".format(self.name)
p=Person("张飞")
print(p)
#多重继承
class A:
    def aa(self):
        print("aa")
class B:
    def bb(self):
        print("bb")
class C(B,A):
    def cc(self):
        print("cc")
c=C()
c.cc()
c.bb()
c.aa()

#MRO()  父类中有相同的名字的方法，在子类没有指定父类名字时，解释器将会“从左到右”按顺序搜索

class A:
    def say(self):
        print("aa")
class B:
    def say(self):
        print("bb")
class C(B,A):
    def cc(self):
        print("cc")
c=C()
print(C.mro())    #打印类的层次结构
c.say()
c.cc()

#多态
class Man:
    def eat(self):
        print("吃饭了")

class Chinese(Man):
    def eat(self):
        print("中国人用筷子吃饭")

class English(Man):
    def eat(self):
        print("英国人用叉子吃饭")

class Indian(Man):
    def eat(self):
        print("印度人用手吃饭")

def manEat(m):
    if isinstance(m,Man):
        m.eat()
    else:
        print("不能吃饭")

manEat(Chinese())
manEat(Indian())
